package thumb

import (
	"bytes"
	"github.com/pkg/errors"
	"myCloud/dbmodel"
	"myCloud/dbopr"
	"myCloud/repo"
)

/*
generateThumb 生成图像缩略预览图
客户端请求缩略图，有以下规格：
sm 128
md 512
lg 1024
default
生成缩略图的步骤：


所有缩略图产生于一个文件内
缩略图文件格式
*/
func generateThumb(file *dbmodel.File) error {
	repoStorage := repo.Instance()

	key, err := repo.HashKeyFromString(file.Hash)
	if err != nil {
		return errors.Wrap(err, "parse key from hash failed")
	}

	body, err := repoStorage.Get(key)
	if err != nil {
		return errors.Wrap(err, "read picture file failed")
	}

	thumbKey := file.Hash
	return Instance().Write(bytes.NewReader(body), thumbKey)
}

func addAlbumInfo(file *dbmodel.File) error {
	p := dbopr.NewAlbumProvider()
	album, notFound, err := p.GetById(file.AlbumID)
	if err != nil {
		return errors.Wrap(err, "get album failed")
	}
	if notFound {
		return errors.New("cannot found special album")
	}

	if album.ThumbType == dbmodel.AlbumThumbFixed {
		return nil
	}

	return p.UpdateThumb(int(file.AlbumID), file.Hash)
}
